Conventional computing devices (e.g., desktop computers and laptop computers) typically implement algorithms directed to controlling the operating clock frequency and voltage of processors included therein, such as a CPU and a GPU. These algorithms are directed to monitoring the CPU/GPU for workloads that take more than a threshold amount of time to complete. Consider, for example, a time-intensive image processing workload that takes several minutes for a CPU/GPU to execute when the CPU/GPU are in a low-performance operating mode. In this example, the algorithms detect that the workload meets certain criteria (e.g., the threshold amount of time has passed or processor duty factor has exceeded a threshold) and cause the CPU/GPU to switch from a low-performance operating mode to a mid-performance or a high-performance operating mode so that the workload is completed sooner. These algorithms enable conventional computing devices to reduce power for short, bursty workloads while providing high performance for long-running compute tasks.
Recent years have shown a proliferation in the usage of mobile computing devices with performance characteristics, energy constraints and interactive user interfaces that are different from those of desktop/laptop computers, which affect the types of workloads users execute on mobile devices. More specifically, unlike traditional long-running pure-compute tasks, mobile applications instead emphasize interactive performance for visual scenarios such as web browsing, gaming and photography. Consequently, the aforementioned algorithms—which are directed to identifying and responding to complex, time-intensive workloads—are not as effective when implemented in mobile devices as the algorithms cannot accurately determine when the operating mode of the CPU/GPU should be modified.